const express = require('express');
const app = express();

// 使用 express 自带的托管静态资源中的间件
// app.use('/public', express.static('public'));
app.use(express.static('public'));
app.get('/', (req, res) => res.send('Hello World!'))

// WebSocket是依赖HTTP协议进行握手的
const server = require('http').createServer(app);
const io = require('socket.io')(server);

const SYSTEM = '系统';

io.on('connection', function(socket) {
	let username;
	socket.on('message', function(msg) {
	    if(username){
	    	io.emit('message', {
	    		user: username,
	    		content: msg,
	    		createAt: new Date().toLocaleString()
	    	});
	    }else{
	    	// 如果是第一次进入的话，就将输入的内容当做用户名
	    	username = msg;
	    	// 向除了自己的所有人广播，毕竟进没进入自己是知道的，没必要跟自己再说一遍
	    	socket.broadcast.emit('message', {
	    		user: SYSTEM,
	    		content: `${username}加入了聊天！`,
	    		createAt: new Date().toLocaleString()
	    	});
	    	
	    }
	});
});

server.listen('3000', function () {
	console.log('server is running at http://localhost:3000!')
});